The Motion Picture Experts Group (“MPEG”) has defined a standard bitstream syntax (the MPEG standard) for the coded representation of video. The MPEG standard includes three types of video frames that are used during the encoding of MPEG video sequences: intra frames (“I-frames”), predicted frames (“P-frames”) and bi-directional frames (“B-frames”).
A video sequence generally begins with an I-frame, followed by a sequence of B- and P-frames. In conventional encoding processes, this sequence of video frames is fixed for a particular video stream (e.g., IBBPBBPBBP . . . etc.), followed by an identical sequence, regardless of any changes to the actual video scene. Typically, the sequence is optimized for video sequences where the frame-to-frame scene changes are not too rapid. If, however, the frame-to-frame motion is rapid and the time between P-frames is too long (e.g., the distance from a previous P- or I-frame is too large), the quality of the resulting encoded video may suffer.
It is generally understood that using different sequences of frame types for different types of motion is advantageous. In order to change a sequence of frame types, however, it is necessary to provide an effective scheme of motion estimation. Although this assessment can be achieved by using a macroblock level motion estimation (ME) process, normally used in MPEG encoders, such a solution is not cost effective.
It is therefore desirable to identify techniques and systems to determine the appropriate sequence of video frame types given a series of video frames having certain qualities. The present invention does so by using a low resolution motion estimation (“LRME”) and the motion estimation process takes place on these low-resolution frames.